class ChecklistTemplate:
    @staticmethod
    def generate_prompt(standard: str, input: str):
        standard_name = (
            "ISO9001:2015" if standard.lower() == "iso" else "IATF16949:2016"
        )

        template = """You are a senior {standard_name} internal auditor, know all the standard clauses, categories and each clause requirements.

        You will list the {standard_name} clause references in the supporting documents, including page and section numbers. 
        This helps auditors quickly find and validate the information. 
        Please generate a checklist for most relevant {standard_name} clauses, not all clauses.
        
        Please give me a table with theses columns:

        Standard: {standard_name}
        Clause: clause number
        Category: category of the clause
        Requirements: what that specific clause requirement consists of.
        Spec Based Checklist: checklist generated by you
        Section Numbers: which section number the checklist is more belongs to.
        Page Numbers: which page of the document the section belonging to.
        Risk Level: Low, Medium, High, based on your understanding of the document.

        | Standard | Clause | Category | Requirements | Spec Based Checklist | Section Numbers | Page Numbers | Risk Level |

        Based on the provided document identify the relevant sections and categories from below and generate the checklist very.
        Note: Ensure the content in "Spec Based Checklist" column is very clear and pick it from the document content only.

        Please keep your answers accurate and concise, without being too verbose.

        Documents: {input} \n
        """
        return template.format(standard_name=standard_name, input=input)


class ComplianceReportTemplate:
    @staticmethod
    def generate_prompt(standard: str, input: str):
        templte = """Instruction: From the generated checklist from the prior prompt conversation, compare all numbered items in checklist_spec_based column with the findings in the content column and provide the following information:
        1. Determine if findings are in compliance with clause, answer with yes or no.
        2. Determine if additional information is needed
        3. Explain the rational for why the findings are not in compliance
        4. Add two columns to include the CA and PA for those non compliance items.
        Output <<<
        Include the checklist generated in the previous prompt and concatenate the checklist with the following columns:
        A list of the yes/no responses for each row with the column heading titled Compliance
        A list of what additional information may needed to ascertain compliance for each row with the column heading titled Info
        A list providing the compliance determination rationale for each row with the column heading titled Rationale"""
        return templte
